package com.gugee.ins.data.mark.config;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * InsMarkConfig
 * @author Huangxin
 */
@Configuration
@Getter
public class InsMarkConfig {

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.mark.insMarkDay.logTime.debug.limit:50}", autoRefreshed = true)
    long insMarkDayDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.mark.insRankFgDay.logTime.debug.limit:50}", autoRefreshed = true)
    long insRankFgDayDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.mark.insRankFgWeek.logTime.debug.limit:50}", autoRefreshed = true)
    long insRankFgWeekDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.mark.insRankFgMonth.logTime.debug.limit:50}", autoRefreshed = true)
    long insRankFgMonthDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.mark.insRankFlMonth.logTime.debug.limit:50}", autoRefreshed = true)
    long insRankFlMonthDebugTimeLimit;

    /**
     * insMarkDay 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insMarkDay.corePollSize:2}", autoRefreshed = true)
    int insMarkDayCorePollSize;


    /**
     * insMarkDay kafka topic
     */
    @Value(value="${kafka.topics.insMarkDay.online}")
    String insMarkDayOnlineTopic;

    /**
     * insMBloggerUpdateEs kafka topic
     */
    @Value(value="${kafka.topics.insMBloggerUpdateEs.online}")
    String insMBloggerUpdateEsOnlineTopic;

    /**
     * insMarkDay 消息时限范围
     */
    @NacosValue(value="${ins.data.mark.insMarkDay.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsMarkDayMsgTimeMinRange;

    /**
     * insBloggerEs 消息重发最大次数
     */
    @NacosValue(value="${ins.data.mark.message.insBloggerEs.retry:1}", autoRefreshed = true)
    int insBloggerEsRetryTimes;

    /**
     * insMarkDay 时区
     */
    @NacosValue(value="${ins.data.mark.insMarkDay.timeZone:GMT+8}", autoRefreshed = true)
    String insMarkDayTimeZone;

    /**
     * insMarkBrand 消息时限范围
     */
    @NacosValue(value="${ins.data.mark.insMarkBrand.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsMarkBrandMsgTimeMinRange;

    /**
     * insMarkBrand 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insMarkBrand.corePollSize:2}", autoRefreshed = true)
    int insMarkBrandCorePollSize;
}
